AOP for Everyone - Cracking the Multiple Weavers Problem

نویسندگان

  • Suman Roychoudhury
  • Jeff Gray
چکیده

ion Layers for Aspect Languages A difficulty in using term rewriting systems is the inherent nature of the transforms, which requires knowledge about parsing and the underlying grammar to write complex rewrite functions. This raises unintentional accidental complexities and impedes the adoption of such systems in mainstream software development. Because of these idiosyncrasies, developers may prefer to deal with object-based or XML-based transforms, which are conceptually easier to work with, but do not offer the desired level of scalability. Our current work offers a technique to build simple convenience layers (i.e., aspect languages layered above a transformation engine) to mitigate these accidental complexities to enable AOP based on term rewriting. For example, the rewrite rule shown in Listing 1b can be declaratively specified by an aspect (as shown below) and then translated to its low-level form as required by the term rewriting system. In this example, the special compose functor is used to wrap the try-finally statement before and after the execution of the Handle method. aspect synchronizeDBErrHandler{ pointcut function_handle() : execution(function *.Handle(..)); before():function_handle() { TExHandler (Collection).LockHandle; } after():function_handle() { TExHandler (Collection).UnLockHandle; } compose():try-finally (thisJoinPoint);

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Aspect Weaving with Graph Rewriting

This paper introduces GRS-based AOP which explains a large subclass of AOP weavers as graph rewrite systems (GRS). The corresponding class of AOP problems has a formal background since it inherits all features of graph rewrite systems such as criteria for termination , connuence, and unique normal forms. In particular, it it shown that diierent kinds of rewrite rules form diierent weaver classe...

متن کامل

A Framework for Creating Aspect Weavers

Several new modularity technologies have been proposed that improve separation of concerns in programming languages. In particular, research in Aspect-Oriented Programming (AOP) has been promoted as a means toward the separation of concerns that crosscut the modularity of an implementation. This brief summary presents two research objectives for extending AOP. First, the concept of AOP is inves...

متن کامل

Term Rewriting Meets Aspect-Oriented Programming

We explore the connection between term rewriting systems (TRS) and aspect-oriented programming (AOP). Term rewriting is a paradigm that is used in fields such as program transformation and theorem proving. AOP is a method for decomposing software, complementary to the usual separation into programs, classes, functions, etc. An aspect represents code that is scattered across the components of an...

متن کامل

Motivation and Requirements for a Versatile AOP Kernel

Aspect-Oriented Programming (AOP) is a promising approach to modularizing software in presence of crosscutting concerns. Numerous proposals for AOP have been formulated, some of them generic, others specific to particular concerns. There are commonalities and variabilities among these approaches, which are worth exploring. Unfortunately, in practice, these various approaches are hard to combine...

متن کامل

Dynamic AspectC++: Generic Advice at Any Time

In theory, the expressive power of an aspect language should be independent of the aspect deployment approach, whether it is static or dynamic weaving. However, in the area of strictly statically typed and compiled languages, such as C or C++, there seems to be a feedback from the weaver implementation to the language level: dynamic aspect languages offer noticeable fewer features than their st...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005